package utils 
{
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.MovieClip;
	import flash.system.System;
	import flash.net.SharedObject;
	/**
	 * 常用工具类
	 * @author gcxk721
	 */
	public class QhUtils 
	{
		
		/**
		 * 只允许输入数字的正则表达式
		 */
		public static const INPUT_ONLY_NUMBER : String = "0-9";
		
		/**
		 * 只允许输入英文的正则表达式
		 */
		public static const INPUT_ONLY_ENGLISH : String = "A-Za-z";
		
		/**
		 * 只允许输入字母和数字的正则表达式
		 */
		public static const INPUT_ENGLISH_NUMBER : String = "A-Za-z0-9";
		
		/**
		 * 允许输入中文字符和字母
		 */
		public static const INPUT_FONT_ENGLISH : String = "a-zA-Z\u4e00-\u9fa5";
		
		/**
		 * 允许输入中文字符，字母，数字
		 */
		public static const INPUT_FONT_ENGLISH_NUMBER : String = "0-9a-zA-Z\u4e00-\u9fa5";
		
		public function QhUtils() 
		{
			
		}
		
		/**
		 * 只是清空容器中所有的显示对象
		 * 不将清空的对象完全删除
		 * @param	container
		 */
		public static function cleanContainer(container : DisplayObjectContainer) : void
		{
			if (container != null)
			{
				while (container.numChildren > 0)
				{
					var display : DisplayObject = container.removeChildAt(0);
					if (display is MovieClip)//停止影片剪辑的播放
					{
						MovieClip(display).stop();
					}
				}
			}
		}
		
		/**
		 * 清空容器，并且将容器内部的所有子项全部删除
		 * @param	container
		 */
		public static function deleteContainer(container : DisplayObjectContainer) : void
		{
			if (container != null)
			{
				while (container.numChildren > 0)
				{
					var display : DisplayObject = container.removeChildAt(0);
					if (display is MovieClip)
					{
						MovieClip(display).stop();
					}
					display = null;
				}
			}
		}
		
		/**
		 * 强制执行垃圾回收
		 */
		public static function gc() : void
		{
			try
			{
				SharedObject.getLocal("cypl", "/");
				SharedObject.getLocal("cypl", "/");
			}
			catch (err : Error)
			{
				
			}
			System.gc();
		}
		
	}

}